home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 January: Mac OS SDK / Dev.CD Jan 98 SDK2.toast / Development Kits (Disc 2) / ScriptX / Documentation / bugs.txt next >
Encoding:
Text File  |  1996-05-21  |  41.0 KB  |  1,179 lines  |  [TEXT/MWPR]

  1. KNOWN BUGS AND RESTRICTONS IN SCRIPTX VERSION 1.5
  2.  
  3. This document contains up-to-date information about the known bugs
  4. and restrictions in Version 1.5 of ScriptX.  
  5.  
  6. These restrictions are divided into components which are listed in 
  7. alphabetical order.  Each bug report contains the bug number, 
  8. a description, and possibly a workaround.
  9.  
  10. The components included are as follows:
  11.  
  12. 2D Graphics               Loadables - Transitions
  13. Animation                 Loadables - xcmd
  14. Clocks                    Loader
  15. Collections               Memory Management
  16. Config - Audio            Modules
  17. Config - General          Numerics
  18. Config - Video            Object Store
  19. Controllers               Object System Kernel
  20. Document Templates        Players - Interleaved
  21. Environment               Players - Video
  22. Events                    Presenters
  23. Exceptions                Printing
  24. Files - DirReps           Spaces
  25. Importers - ART           Streams
  26. Importers - DIB           Tethered Editors
  27. Importers - General       Text & Fonts
  28. Importers - PICT          Threads
  29. Importers - QuickTime     Title Management
  30. Importers - RTF           Tools - Browsers
  31. Importers - WAVE          Tools - Debug Tools
  32. KMP App                   Tools - Widgets
  33. Language                  Transitions
  34. Language - General        User Interface
  35. Language - ScriptX        Visual Memory
  36.  
  37.  
  38. ______________________________________________________
  39.  
  40. 2D Graphics
  41.  
  42. 3458     Macintosh only:  When the remapOnDraw instance variable 
  43. of a bitmap is set to true and the bitmap is rendered, the 
  44. bitmap's colormap does not get remapped to the colormap of 
  45. the surface.
  46.  
  47. 3525     Windows only: In rotating a bitmap, it may distort as well as 
  48. rotate. 
  49.  
  50. 3628     The vertical display coordinate origins are not compatible 
  51. across platforms.  For example, when you specify a y-position 
  52. of 40 on the Macintosh, your window is right below the 
  53. system menu bar.  On Windows, there is a sizable gap.
  54.  
  55. 3703     The arc method does not draw a perfect arc.  The radius is 
  56. slightly different at different points.
  57.  
  58. 3704     When drawing a complete circle, arc and arcn produce 
  59. different outputs.  arc mistakenly produces a circle that is 
  60. completely closed, while arcn produces a circle with a slight 
  61. opening, as is expected.
  62.  
  63. 3709     Setting the brush lineWidth to 0 does not draw using the 
  64. smallest line width possible, as it states in Class Reference.
  65.  
  66. 3714     Macintosh only:  In performing a transform on a bitmap, and 
  67. appending it to a LibraryContainer, the color of the matte 
  68. changes, while the color value of the matteColor instance 
  69. variable does not change.  
  70.  
  71. 3758     Different results are produced depending on when a 
  72. transformation matrix is applied to a BitmapSurface.  If you 
  73. apply theMatrix when you fill the bitmapsurface and then 
  74. call transform  with an identityMatrix, the resulting image 
  75. shows some banding.  However, if you apply the 
  76. identityMatrix when you fill the bitmapsurface and then 
  77. transform it with theMatrix, the image looks fine.
  78. Workaround:  Apply the identityMatrix when you fill 
  79. the bitmapsurface and then transform it with theMatrix.
  80.  
  81. 3850    GroupPresenters are not stroked correctly.  For example,
  82. bounding boxes are stroked, not the union of their boundaries.
  83.  
  84. 3869     Animating a Line object fills memory with Line objects that 
  85. are not collected, thus generating garbage.
  86. Workaround:  use a Path object instead of a line.
  87.  
  88. 3876     White areas may be shown when a bitmap is rotated in some 
  89. situations.
  90.  
  91. 3890     Rotating a bitmap gradually degrades the image.
  92. Workaround:  Instead of rotating an image, rotate a 
  93. matrix and apply it to the original image.  The image does 
  94. not degrade.
  95.  
  96. 3900     TwoDMultiPresenter clips at its bounding box (bbox) rather 
  97. than its boundary.
  98.  
  99. 3923     The onBoundary method for Stencil returns true only when 
  100. the coordinates passed represent the corner of the bounding 
  101. box of the Stencil. 
  102.  
  103. 3927     The remapOnSet instance variable defined by Bitmap is a 
  104. no-op on both Macintosh and Windows.  In addition, using the 
  105. colormap: keyword while importing a bitmap does not work 
  106. on Windows, although it does work on the Macintosh.
  107.  
  108. Workaround:  Write to a bitmap surface at runtime to 
  109. set the colormap dynamically,  and then convert the result 
  110. back to a bitmap.
  111.  
  112. 3952     Windows only: GDI resources are not freed when you using a 
  113. user defined pattern for a brush object.
  114.  
  115. 3975     TwoDSpace uses the rectangular bbounding base (bbase) as its 
  116. clipping region instead of using its boundary as a clippings 
  117. region. The result is that if you add a presenter such as a 
  118. TwoDShape to a space whose boundary is, for example, an 
  119. oval, you see that the presenter is clipped by the rectangluar 
  120. area surrounding the oval, instead of by the oval.
  121.  
  122. 4105     If a TwoDShape object uses a bitmap stored in a library 
  123. container, with the invisibleColor of the bitmap set and the 
  124. shape appended to a window stored in a title Container, the 
  125. invisibleColor of the bitmap fails.  The shape appears in the 
  126. window with its rectangular boundary.
  127.  
  128. 4178     Windows only: One gray color in the default color palette 
  129. appears yellow. 
  130.  
  131. 4198    Bitmaps are skewed or rotated 45 degrees or so when 
  132. displayed in Win95.  The bitmap of values, such as 2, 6, 10, where
  133. the value is divisible by 2 but not by 4, will appear skewed.
  134.  
  135. 4199     Windows only: Shapes created from paths can be rotated but 
  136. shapes created from imported bitmaps disappear when 
  137. rotated.
  138.  
  139. 4200    Windows only:  Setting the invisibe color for bitmap does 
  140. not work on Windows.  It works on the Macintosh.
  141. _______________________________________________________
  142.  
  143. Animation
  144.  
  145. 3247     Windows only: If an animation is temporarily interrupted, 
  146. when the animation continues, the animation moves in fast 
  147. motion as if it were trying to catch up.
  148.  
  149. 3474     ActionListPlayer does not play in reverse.  
  150.  
  151. 3534     In the TimeAction class, the time instance variable cannot be 
  152. set after the action has been created.  The time action will 
  153. not occur.
  154.  
  155. Workaround:  Add the keyword time when creating the 
  156. TimeAction instance, setting its value to the end of the list.  
  157. For example: global t10 := new TimeAction targetNum:0 
  158. destTime:5 time:10.
  159. ___________________________________________________________
  160.  
  161. Clocks     
  162.  
  163. 3617     Calls to set the value of the authorData and target instance 
  164. variables on callbacks are ignored.  Therefore, a callback 
  165. cannot be easily modified once it has been created.
  166.  
  167. 3670     New clocks that are added to a paused title are not paused.
  168.  
  169. 4083     Referencing the date instance variable of theCalendarClock 
  170. triggers periodic callbacks  on that clock, if you addded any 
  171. to it. 
  172.  
  173. _____________________________________________________________
  174.  
  175. Collections     
  176.  
  177. 3050     The expression for i in 1 to 6 collect by append i returns the 
  178. NoMethod exception.
  179.  
  180. Workaround:  This is not actually a bug.  Only 
  181. collection methods that return a collection are suppsed to be 
  182. in the by cause.  Do not use append; use the global function 
  183. appendReturningSelf.  See the discussion of the for expression 
  184. in the ScriptX Language Guide and also the definition of the 
  185. appendReturningSelf in the global function section of the 
  186. Class Reference.  You can also use an anonymous function to 
  187. create a wrapper for append that returns the collection 
  188. rather than the appended key.
  189.  
  190. 3072     Calling seekFromStart beyond End of File (EOF) on 
  191. SequenceIterator reports an exception.
  192.  
  193. 3075     Nearly all iterators return incorrect results for 
  194. (seekFromEnd iter 0).
  195.  
  196. 3107     The method stringOf on ByteString, String, Name, and 
  197. Exception is available from the scripter, although it is not 
  198. documented.
  199.  
  200. 3327     The remainder method on KeyedLinkedListIterator returns a 
  201. collection of value:value pairs rather than a collection of 
  202. key:value pairs.
  203.  
  204. 3395     When coercing a string to NameClass, the case may change 
  205. unexpectedly.
  206.  
  207. Workaround:  This is not a bug.  NameClass objects are 
  208. not case sensitive.
  209.  
  210. 3476     In collections, when defining a range using floats, and 
  211. attempting to increment by a fraction, an incorrect value is 
  212. returned.
  213.  
  214. 3513     The classes Single, Pair, Triple, and Quad do not
  215. specialize the addToContents method, which is hidden from the 
  216. scripter.  As a result, it is not possible to use the object syntax 
  217. in the ScriptX language to set the values for members of these 
  218. bounded collections.
  219.  
  220. 3592     The keyword initialSize in ByteString  is off by one less than 
  221. specified.
  222.  
  223. 3711     ScriptX crashes when creating a new instance of a subclass of 
  224. Sequence.
  225.  
  226. 4031     For IndirectCollection, deleteKeyOne calls objectRemoved 
  227. with the key, not the value, and this causes objectRemoved to 
  228. be called with incorrect arguments.
  229.  
  230.  
  231. 4192    The eq operator returns a different value from equal.
  232. ____________________________________________________________
  233.  
  234. Config - Audio
  235.      
  236. 3420     PS/2 only:  ScriptX causes a fatal system crash if system 
  237. sounds are enabled and a sound is played.  
  238.  
  239. Workaround:  Turn off system sounds.  
  240.  
  241. 3832     IBM microchannel M-Audio card fails to produce sound.  
  242.  
  243. _____________________________________________________________
  244.  
  245. Config - General     
  246.  
  247. 3974     Windows only:  Cannot launch ScriptX or the KMP from CD-
  248. ROM on an IBM ThinkPad.  
  249. _______________________________________________________________
  250.  
  251. Config - Video     
  252.  
  253. 3273     The QVision video card may experience poor performance.
  254.  
  255. ____________________________________________________
  256.  
  257. Controllers     
  258.  
  259. 3769     You are not prevented from creating instances of many 
  260. abstract classes, even though those instances are incomplete 
  261. and therefore useless.
  262.  
  263. 4189     If an object is controlled by a bounce controller, the object goes 
  264. past an edge it encounters.
  265.  
  266. ____________________________________________________
  267.  
  268. Document Templates     
  269.  
  270. 2965     localEqual fails when comparing two Page objects of the same 
  271. value.
  272.  
  273. 3003     Page objects do not compare correctly.  equal returns false 
  274. when it should return true.  The same applies to PageElement 
  275. and PageTemplate.
  276.  
  277. 3005     A PageElement object acts as a proxy for its target. This can 
  278. result in seemingly illogical behavior. For example, 
  279. isAKindOf on an instance of PageElement returns true for 
  280. TextPresenter, if a TextPresenter object is the target of the 
  281. PageElement object, while TextPresenter does not show up in 
  282. the list returned from getSupers on the PageElement class. 
  283.  
  284. 4197    System crashes when you try to add custom instance variables
  285. in the definition of a PageElement object. 
  286.  
  287. ____________________________________________________
  288.  
  289. Environment     
  290.  
  291. 3182     Windows only: ScriptX fails to run on the Japanese version of 
  292. Windows 3.1
  293.  
  294. 3200     When a script has been filed-in without -<<< ->>>
  295.  
  296.  requiring one to hit the Return button after each line
  297.  
  298. 3204     The default state for a newly created MDTextWindow is 
  299. visible on Windows and hidden on the Macintosh.
  300.  
  301. 3509     Windows only:  When trying to open a file that does not have 
  302. an extension, ScriptX will not read in the file.  
  303.  
  304. 3598     Windows only:  When the splash screen initially comes up 
  305. there is a thick blue border around it that does not exist on 
  306. the Macintosh.  
  307.  
  308. 3961     Windows Only: Command-delete in Listener does not delete 
  309. all text from cursor to end. 
  310.  
  311. 3985     On the Macintosh, copying a new version of ScriptX onto your 
  312. local drive sometimes causes drag-and-drop to fail. 
  313.  
  314. Workaround:  Rebuild the desktop.
  315.  
  316. 4001     ScriptX will not boot on PowerMac without installing 
  317. QuickTime.  
  318.  
  319. Workaround:  Install QuickTime to boot ScriptX on 
  320. PowerMac.
  321.  
  322. 4201    Command line arguments to ScriptX must now include a fully
  323. qualified path.
  324.  
  325. Workaround:  Install QuickTime to boot ScriptX on PowerMac.
  326. _________________________________________________________________
  327.  
  328. Events     
  329.  
  330. 3622     Macintosh only:  On compact Macs without a numeric keypad, 
  331. like a PowerBook, the Enter key is not mapped.
  332.  
  333. 4005     hasUserFocus on the Window class can be set to true before 
  334. the window is visible, which may prevent forceFocus from 
  335. working.
  336.  
  337. 4122     When executing a startupAction that calls signal on an event 
  338. that has been stored in a title container, an exception will 
  339. occur.
  340.  
  341. __________________________________________________________________
  342.  
  343. Exceptions
  344.  
  345. 3024     If the WIDGETS.SXL file is missing but tools are being 
  346. loaded, a dialog will notify you of a problem, offering Quit 
  347. and Continue options.  If Continue is chosen, ScriptX crashes 
  348. with a bus error.
  349.  
  350. Workaround:  If this dialog appears, choose Quit and 
  351. load tools with the WIDGETS.SXL file in place.
  352.  
  353. ___________________________________________________________________
  354.  
  355. Files - DirReps     
  356.  
  357. 3219     Windows only: Creating a file with no given extension 
  358. reports an error.
  359.  
  360. Workaround:  Provide an extension when creating a 
  361. file.
  362.  
  363. 3257     Macintosh only: The fixNameForOS method returns bad 
  364. strings when passed a long filename.
  365.  
  366. 3554     Macintosh only:  The createFile method should throw an 
  367. exception when creating a file on a read-only diskette, but it 
  368. does not.  A string of the filename is returned, even when the 
  369. file is not created on the diskette.
  370.  
  371. 4067     Open title will fail on files on a network drive.
  372.  
  373. ____________________________________________________
  374.  
  375. Importers - ART
  376.  
  377. 3903     Setting mattecolor and invisiblecolor on KIC compressed 
  378. images might not change the color.
  379.  
  380. ____________________________________________________
  381.  
  382. Importers - DIB     
  383.  
  384. 3084     Macintosh only: When you import a 24-bit DIB using the DIB 
  385. importer with @compressedBitmap as the output media 
  386. type, the results are incorrect.
  387.  
  388. 3560     Importing the colormap of a 24-bit uncompressed BMP file 
  389. returns an error.
  390.  
  391. 4143     Macintosh only:  Importing a 24-bit uncompressed bitmap 
  392. does not work.
  393.  
  394. ____________________________________________________
  395.  
  396. Importers - General     
  397.  
  398. 3759     The QuickTime-to-Bitmap importer fails to import for a 
  399. QuickTime movie that has all key frames.  It states, Frame 
  400. beyond the end of the movie.
  401.  
  402. ____________________________________________________
  403.  
  404. Importers - PICT
  405.  
  406. 3956     Windows only: importing a pict file twice without resetting 
  407. the cursor on the stream generates a read error message.  
  408.  
  409. 4142     Windows only:  pict importer makes system hang when 
  410. importing a 24-bit pict.
  411.  
  412. ____________________________________________________
  413.  
  414. Importers - QuickTime
  415.  
  416. 3058     When presented with a movie that has multiple sound 
  417. descriptions, the QuickTime importer crashes with a bus 
  418. errors.
  419.  
  420. ____________________________________________________
  421.  
  422. Importers - RTF     
  423.  
  424. 3393     Importing an RTF file that has a header or a footer, and 
  425. displaying the imported text in ScriptX, causes ScriptX to 
  426. freeze.  This may require rebooting.
  427.  
  428. Workaround: Do not import an RTF file that contains a 
  429. header or a footer for display in ScriptX.  This bug may be 
  430. fixed.
  431.  
  432. ____________________________________________________
  433.  
  434. Importers - WAVE     
  435.  
  436. 3864     Imported 44Khz 16-bit WAVE audio plays at too low a pitch 
  437. on the Macintosh.  
  438.  
  439. Workaround:  Change the DigitalAudioPlayer pitch 
  440. instance variable from 60 to 84.  
  441.  
  442. __________________________________________________________________
  443.  
  444. KMP App     
  445.  
  446. 3799     On the Macintosh, file type and file extension are 
  447. determined by Macintosh-specific elements of a file, with 
  448. creator fields that cannot be included in cross-platform 
  449. distributions.  
  450.  
  451. Workaround:  Macintosh only: Allow files with the 
  452. proper file extensions (.sxt, .sxl, .sxa) to be opened by the 
  453. Kaleida Media Player even if the file type and creator 
  454. fields are not set correctly.
  455.  
  456. ___________________________________________________________________
  457.  
  458. Language     
  459.  
  460. 2996     The following classes do not behave correctly with copy on a 
  461. subclass:
  462. Bitmap, BitmapCompressionInfo, Brush, ClippedStencil, 
  463. ColorMap, Line, MdByteString, Oval, Path, RGBColor, Rect, Region, 
  464. RoundRect, StringConstant, TextPresenter, VideoFrameDesc, 
  465. Window.
  466.  
  467. Workaround:  See the discussion of copying objects in the 
  468. "Object System Kernel" chapter of the Componenets Guide.
  469.  
  470. 3039     getLowercase "\<10000>" causes ScriptX to crash with a 
  471. fatal error.
  472.  
  473. Workaround:  Use no more than 4 digits with 
  474. getLowercase "\<NNNN>".
  475.  
  476. 3046     Calling any of the following on instances can cause crashes: 
  477. init, afterInit, afterLoading, initCopy, inflate.
  478.  
  479. Workaround:  Do not do it.  These methods are visible 
  480. so that they can be specialized.  They are not meant to be 
  481. called from the scripter.
  482.  
  483. 3052     localEqual compares two collections, item by item, to 
  484. determine if their members are locally equal.  If collections 
  485. contain other collections embedded within, then localEqual 
  486. causes ScriptX to crash.  
  487.  
  488. 3102     In the Browser, when browsing a core class, the list of 
  489. methods does not match the result of getDirectMethods.
  490.  
  491. 3539     In the loadable transitions, when a loadable class is 
  492. referenced prior to having loaded the class, it is not 
  493. recognized after the class is loaded.
  494.  
  495. Workaround:  Always make sure loadable transtions 
  496. are loaded before referencing them.
  497.  
  498. 3673     Variable modifier initializer does not function properly.
  499.  
  500. Workaround:  Although defined in the ScriptX syntax, 
  501. scripted initializers have not yet been implemented in 
  502. version 1.5.  Implement initialization by specializing 
  503. afterLoading.
  504.  
  505. 3692     ScriptX crashes without reporting an exception when  trying 
  506. to redefine a constant. 
  507.  
  508. __________________________________________________________
  509.  
  510. Language - ScriptX     
  511.  
  512. 3782     A syntax error is reported if a line break occurs immediately 
  513. after a function fnName definition begins.  However, the 
  514. parser does not report an error if the line break occurs after 
  515. function fnName firstArg or function fnName ->. 
  516.  
  517. Workaround:  Do not break a line after the name in a 
  518. function definition.
  519.  
  520. 4182     A small memory leak might occur when coercing arguments 
  521. passed into a function into string objects and then coercing 
  522. those string objects into NameClass objects.
  523.  
  524. Workaround:  In this situation, use the new syntax to 
  525. create the NameClass object, rather than coercing the string 
  526. object into a NameClass object.
  527.  
  528. ___________________________________________________________
  529.  
  530. Loadables - General
  531.  
  532. 4208     If you create a subclass of a loadable class, 
  533. such as QuickTimePlayer or one of the widget classes, 
  534. such as TextButton, that subclass will not be stored.  
  535. Therefore, at runtime it will not be present. 
  536.  
  537. Workaround:  Subclass the loadable class at runtime, 
  538. which you can do in the startupAction method.
  539.  
  540. ___________________________________________________________
  541.  
  542. Loadables - Transitions     
  543.  
  544. 3924     Dissolve transitions do not work properly.
  545.  
  546. ___________________________________________________________
  547.  
  548. Loadables - xcmd     
  549.  
  550. 3918     Loadable XCMD is not functional.  Attempting to load the 
  551. XCMD reports various LoaderHelper errors.
  552.  
  553. ___________________________________________________________
  554.  
  555. Loader     
  556.  
  557. 3643     relinquish method does not call exit within a function in a 
  558. loadable unit.
  559.  
  560. ___________________________________________________________
  561.  
  562. Memory Management
  563.  
  564. 3694     ScriptX crashes when it is set to start up with insufficient 
  565. memory.
  566.  
  567. ___________________________________________________________
  568.  
  569. Modules     
  570.  
  571. 3669     When multiple modules are stored in a single title container, 
  572. the modules must be explicitly de-referenced via the load 
  573. method at startup time.  Simply setting a variable equal to 
  574. the module’s proxy is not enough to load all defined 
  575. variables.
  576.  
  577. 3718     When a module is redefined, renames does not work properly.
  578.  
  579. 4004     Redefining a module variable after storing it to a container, 
  580. then reloading the objects, causes ScriptX to crash.
  581.  
  582. ___________________________________________________________
  583.  
  584. Numerics     
  585.  
  586. 3612     Matrix operations lead to a value of 1 (ImmediateInteger) on 
  587. Windows but 1.0000 (Float) on Macintosh.  Note that this can 
  588. cause cross-platform compatibility problems.
  589.  
  590. 3618     A date earlier than 1970 cannot be entered.
  591.  
  592. Workaround:  Enter a date after 1970.
  593.  
  594. 3654     posInf cannot be used as the upper boundary in a 
  595. NumberRange object.
  596.  
  597. 3802     When making a copy of a Date instance, the same Date object 
  598. is returned.
  599.  
  600. 3868     Allocating objects during a performance critical animation 
  601. may reduce frame rate.
  602.  
  603. 4019     A computation on an undefined number returns an invalid 
  604. number.
  605.  
  606. 4021     Windows only:  When attempting to initialize a date with 
  607. the day set to anything greater than 28, the hour is set to 1 
  608. hour less than the actual hour.
  609.  
  610. 4089     The addMonths instance method malfunctions.
  611.  
  612. Workaround:  Use alternate method to calculate date.
  613.  
  614. ___________________________________________________________
  615.  
  616. Object Store     
  617.  
  618. 2982     The directory instance variable of a library is not set when 
  619. the library is opened implicitly by a title.
  620.  
  621. 3144     LibraryContainers objects and subclasses do not call 
  622. preStartupAction before trying to load the libraries on which 
  623. they depend.
  624.  
  625. 3544     Windows only: In Tools, placing the sxd folder in the Tools 
  626. folder will cause ScriptX to crash on launch.
  627.  
  628. Workaround:  Place the widget library in theStartDir 
  629. folder (outside the tools folder).  When the widget library is 
  630. in the tools folder, it is loaded once by the tools loader after 
  631. being loaded implicilty by a tool.
  632.  
  633. 3734     If a container is initially opened read-only, then it cannot be 
  634. updated during that ScriptX session, even if you close the 
  635. container and re-open it in Update mode. 
  636.  
  637. 3795     Using update myContainer creates containers that are 45MB 
  638. on the PC platform and 13 MB on the Macintosh platform, 
  639. instead of 1MB in size.
  640.  
  641. Workaround:  Since update myContainer is writing 
  642. everything to the storage system, do not use update 
  643. myContainer in a loop where items are added to the target 
  644. collection.
  645.  
  646. 3885     Caution: If you have a container (A) that uses a object1 that 
  647. is stored in another container (B), but is not listed in container 
  648. B's targetCollection instance variable, when a new class is 
  649. added to container B in front of object1, container A's reference 
  650. to object1 may be incorrect.
  651.  
  652. 3986     Containers opened in default read-only mode are sometimes 
  653. updated on close.
  654.  
  655. 3990     ScriptX crashes upon opening a library container in @update 
  656. mode and adding a new object to the library container.
  657.  
  658. 4207     Windows only:  A check for whether a container is already 
  659. open assumes a case-sensitive uppercase filename.  As a 
  660. result, a container is opened twice, causing a <module> cannot 
  661. be redefined error.   On both Windows and Macintosh, file 
  662. Open is case-insensitive, so there is no method to detect in 
  663. which case a file might have been originally opened.  This is 
  664. a problem for cross-container applications.
  665.  
  666. Workaround:  Type container filenames in lowercase 
  667. before comparing or perform a case insensitive container name 
  668. comparison. 
  669.  
  670. ___________________________________________________________
  671.  
  672. Object System Kernel     
  673.  
  674. 3286     Recompiling a class that has instances does not properly 
  675. report an exception on either the Macintosh or Windows 
  676. platform.  Both respond differently and incorrectly.
  677.  
  678. 3305     Class and instance variables declared transient are returned 
  679. from the object store as non-objects, when attempting to 
  680. retrieve them from a container.
  681.  
  682. Workaround:  Since scupled initializer functions have 
  683. not been implemented yet in the current version of ScriptX, 
  684. specialize afterLoading to set the initial value of a transient 
  685. variable.
  686.  
  687. 3456     Using map with the global function eq returns non-objects.
  688.  
  689. 3457     Using map and the numerics method sum reports an exception.
  690.  
  691. 3520     The allInstances generic function can consume a lot of memory, 
  692. if called repeatedly.
  693.  
  694. 3787     The garbagecollect() function causes ScriptX to crash upon 
  695. freeing a specialized class.
  696.  
  697. Workaround:  It is not recommended to override deflate 
  698. and inflateInstance class methods.
  699.  
  700. ___________________________________________________________
  701.  
  702. Players -Interleaved
  703.  
  704. 4214     If SpeedDoubler is installed and Speed Access, a component
  705.  of SpeedDoubler that does better CD caching, is running, 
  706.  movie playback performance off the CD is sub-standard. 
  707.  
  708. ___________________________________________________________
  709.  
  710. Players - Video     
  711.  
  712. 3049     Invisible color instance variable does not work when a palette
  713. changes in a video player, even if the palette is returned. 
  714.            
  715. to the same mode.  
  716.  
  717. 3057     You cannot interrupt or type in the Listener while playing 
  718. video from a compact disc (CD) at negative rates, even after 
  719. the video finishes.
  720.  
  721. 3421     When you change the target of a movie player, the movie 
  722. player does not stop its current slave clocks.  The previous 
  723. movie keeps playing and you may get a long delay when you 
  724. start playing a new movie.
  725.  
  726. Workaround:  Stop the movie player before changing 
  727. its target.
  728.  
  729. 3492     Macintosh only: The audio goes away when the window 
  730. containing a QuickTime player is hidden.  
  731.  
  732. 3514     Windows only:  When the window containing a VFWPlayer 
  733. (Video for Windows player) is shown, it gets shifted 2-3 
  734. pixels up and to the left. 
  735.  
  736. ___________________________________________________________
  737.  
  738. Presenters     
  739.  
  740. 3322     Transform matrices and direct presenters do not interact 
  741. correctly.  The boundary is ignored when rendering direct 
  742. presenters.
  743.  
  744. 3414     When a TwoDMultipresenter object is transformed, such as 
  745. scaled or rotated, its subpresenters do not get transformed.
  746.  
  747. Workaround:  Explicitly transform the subpresenters of 
  748. the TwoDMultiPresenter object.  Make sure to take the origin 
  749. of each subpresenter into account.
  750.  
  751. 4165     A newly created window displays garbage at the bottom, if 
  752. the width is set before setting a height that is over 400.
  753.  
  754. Workaround:  Set width after height when height is 
  755. over 400.
  756.  
  757. ___________________________________________________________
  758.  
  759. Printing     
  760.  
  761. 3700     he paperBoundary for an instance of PrinterSpace or 
  762. PrinterSurface can be changed, but it should not be able to be 
  763. changed.  Also, the boundary for PrinterSurface can be 
  764. changed, but it should not be able to be altered.
  765.  
  766. Workaround: Do not change the paperBoundary for an 
  767. instance of PrinterSpace or PrinterSurface.  Also, do not 
  768. change the boundary for PrinterSurface.
  769.  
  770. 3701     If the fill color is set to whiteColor, and a selected PostScript 
  771. printer is set to black-and-white mode, a rectangle prints 
  772. solid black.
  773.  
  774. 4103     Windows only:  Printing a DocTemplate application returns 
  775. an error.  When printing a large region, GDI memory may run 
  776. low and not print.
  777.  
  778. ___________________________________________________________
  779.  
  780. Spaces     
  781.  
  782. 3471     When an object is appended to a GroupPresenter, its 
  783. rectangular bounding box is stroked, rather than the object 
  784. itself.
  785.  
  786. 3671     If a space's clock is running while the space is being saved to 
  787. the object store, the objects contained by the space may be 
  788. saved with inconsistent state.
  789.  
  790. Workaround:  Pause and restore the spaces so that 
  791. items are saved and restored away in a state you expect. 
  792.  
  793. 3685     If you open an accessory or title container that does not create 
  794. windows, ScriptX incorrectly clears the hasUserFocus of the 
  795. existing top level title container window, unless focus has 
  796. been explicitly switched away from and back to that top 
  797. level window.  When hasUserFocus has been cleared, it is 
  798. impossible for an accessory to discover which title container 
  799. has user focus.
  800.  
  801. 3748     Hiding a direct presenter does not cause it to disappear from 
  802. the window.
  803. Workaround:  Set the direct presenter instance variable to false 
  804. before hiding the presenter.
  805.  
  806. 3791     Macintosh Only: PaletteWindow is unable to detect mouse-
  807. down events in a 15 x 15 pixel square in the lower right-hand 
  808. corner.
  809.  
  810. 3993     Calling appendNew on an instance of TwoDMultipresenter 
  811. reports an exception.
  812.  
  813. 4174     findAllAtPoint, and perhaps the related 
  814. TwoDMultiPresenter methods, do not work.  The 
  815. findAllAtPoint method appears to be checking for an overlap 
  816. between the query point and the local boundary of the 
  817. presenters, instead of checking the boundary of the presenters 
  818. after the globalTransform is applied.
  819.  
  820. ___________________________________________________________
  821.  
  822. Streams     
  823.  
  824. 3161     In the ByteStream class, the pipePartial method is missing 
  825. the last character of bytestrings.
  826.  
  827. 3196     A copy of a mdByteString is always growable, even when the 
  828. original is not.
  829.  
  830. 4086     frameRate iv in VideoStream is supposed to be read-only.  
  831. Currently you can assign a value to it without getting an 
  832. exception.
  833.  
  834. ___________________________________________________________
  835.  
  836. Tethered Editors     
  837.  
  838. 4144     When executing Send Script in BBEdit version 3.5, hitting 
  839. Cancel in the "Select the ScriptX app" box can cause BBEdit 
  840. to crash.
  841. ___________________________________________________________
  842.  
  843. Text & Fonts     
  844.  
  845. 2976     Setting a text's selection to a backward range (10 to 6 by -1) 
  846. draws the highlighting incorrectly.  The range should be 
  847. selected with the cursor at the beginning.  When dragging to 
  848. select text, the cursor stays at the end of the selection. It 
  849. should follow the mouse and end up at the position where the 
  850. mouse is released.
  851.  
  852. 3293     Platform-specific characters prevent transfer from the 
  853. system clipboard.  There is no way to get at the system 
  854. clipboard as anything other than Text — as a byte array, for 
  855. example.
  856.  
  857. 3515     When a title is built on the Macintosh and moved to 
  858. Windows, the Courier New and Wingdings fonts do not work.  
  859. If rebuilt on Windows, all fonts work correctly.
  860.  
  861. 3523     When the target of a TextPresenter extends beyond the width 
  862. of the presenter, the entire word is not shown.
  863.  
  864. Workaround:  Increase width of textPresenter or reduce 
  865. length of word in target.
  866.  
  867. 3533     Importing very large text causes the thread to overflow its 
  868. stack.
  869.  
  870. Workaround:  There is a limitation of about 100 
  871. operands in a single expression.  So, for example, having over 
  872. a hundred strings joined together with the plus operator does 
  873. not work. You can avoid this problem by just having one 
  874. string.  In ScriptX, a string can extend over the end of a line 
  875. and be as long as you like.
  876.  
  877. 3541     TextPresenter does not take the inset of the text into account 
  878. when detecting a hot region for performing actions.  The 
  879. active mouse area is off by the inset amount.
  880.  
  881. 3687     Macintosh only: Font type and size of the menu bar and 
  882. window title bars can be mistakenly changed by a sequence of 
  883. commands issued from a script or in the listener window, 
  884. when theTitleContainer.systemMenuBar is hidden.
  885.  
  886. 3848     setAttr does not set the color correctly when the end of the 
  887. range is not at the end of the text.
  888.  
  889. 3867     Text presenters generate garbage when drawing.
  890.  
  891. 3873    The event interest instance variables of TextEdit are not
  892. accessible through ScriptX and enabledSetter is not specialized
  893. to remove and add events.  If you attempt to run through the 
  894. eventInterests instance variables to implement TextEdit disabling, 
  895. and if the TextEdit had focus in its window, it will re-add the 
  896. keyInterest event when focus is restored to the window.
  897.  
  898. Workaround:  Use with extreme caution, since this relies 
  899. on information that is subject to change.  Disable a 
  900. TextEdit box so that it does not receive KeyboardDownEvents.
  901.  
  902. 3914     Coercing a NameClass object to a string constant throws an 
  903. error.  In addition, coercing a NameClass object to a Text 
  904. object mistakenly includes the @ sign.
  905.  
  906. Workaround:  Coerce the NameClass object to a String 
  907. object adn the to a StringConstant object or a Text object.
  908.  
  909. 4117     Text color changes to black from white when a window is 
  910. moved to a second monitor that is set to a different color 
  911. resolution.
  912.  
  913. 4193    If you call calculate on a text presenter 
  914. that has an empty string as its target, it throws an exception
  915.  "No undefined instance method for Substrate:UndefinedClass." 
  916.  
  917.  Workaround: Assign any string (such as a space) with a length
  918.  greater than zero to the target.  Then calculate will work.
  919.  
  920. ___________________________________________________________
  921.  
  922. Threads     
  923.  
  924. 3451     Calling threadProtect on threads whose staus is @inactive or 
  925. @done does not change the protection level of the thread.
  926.  
  927. 3589     A quit query function must run in a separate thread.  It is does 
  928. not work to present a dialog box asking Okay to quit? Y/N.  
  929. After the box appears, one must block the thread to prevent 
  930. the quit query function from continuing, to allow the user to 
  931. press Yes or No.  But in blocking the current thread, all events 
  932. are blocked, because the quit query function runs in the thread 
  933. labeled EventDispatchQueue—it should instead run in 
  934. another thread.  It works to type quit() in the Listener.  
  935. However, if you type Command-Q or choose Quit from the 
  936. File menu, the dialog box appears but the pushbuttons do not 
  937. respond to user input.
  938.  
  939. Workaround:  Create a separate thread to run the quit 
  940. query function.
  941.  
  942. ___________________________________________________________
  943.  
  944. Title Management     
  945.  
  946. 3269     Opening a LibraryContainer instance is inconsistent between 
  947. the open method and opening it from the file menu.  Opening 
  948. from the file menu creates a new DirRep representing the full 
  949. path to the container file, and assigns this DirRep to the 
  950. directory instance variable.  This DirRep is also appended to 
  951. theContainerSearchList global variable.  Opening with the 
  952. open method does not generate a new DirRep, nor does it 
  953. append a DirRep to theContainerSearchList.
  954.  
  955. 3300     ScriptX retains a reference via filename for each created or 
  956. opened LibraryContainer instance.  A new LibraryContainer 
  957. instance cannot be created with the existing filename until 
  958. after ScriptX quits. 
  959.  
  960. Workaround:  After building library containers, quit 
  961. and restart ScriptX.
  962.  
  963. 3301     If you open a LibraryContainer more than once during 
  964. a ScriptX session, terminateAction is called only the first 
  965. time you close it.  
  966.  
  967. Workaround:  Do not use terminateAction;  try to write your code
  968. to not rely on terminateAction.
  969.  
  970. 3506     If a title container is opened, and then closed using 
  971. CloseTitle from the File menu, and then re-opened from the 
  972. File menu, the file will be reported as "In use."  The file 
  973. cannot be opened a second time from the File menu.
  974.  
  975. Workaround:  Titles can be opened and closed as often 
  976. as you want programmatically.
  977.  
  978. 3626     The directory instance variable is not set at 
  979. preStartUpAction, where it is needed for adding paths to 
  980. theContainerSearchList.
  981.  
  982. 3722     Extra windows show up in the Scratch title container 
  983. windows instance variable.  This happens because placing a 
  984. presenter in a storage container saves the entire presentation 
  985. hierarchy it is in.
  986.  
  987. 3839    ScriptX does not keep track of the pointer (cursor) 
  988. when you switch between titles.  In other words, if title a is 
  989. running and you change the cursor to wait, you switch to title b, 
  990. but the cursor stays wait even though b's cursor should be a pointer.
  991.  
  992. 3855     Setting the colormap of a Window object has no effect if the 
  993. window is hidden.
  994.  
  995. 4006     The version instance variable of a LibraryContainer instance 
  996. returns a non-object, if left unassigned.  It should return 
  997. undefined.
  998.  
  999. 4092     Classes returned by the getAccessory method of the accessory 
  1000. container are not getting loaded.
  1001.  
  1002. 4110    The Systemmenubar is inconsistent across platforms.  
  1003. On the Macintosh the Systemmenu comes up with Print disabled, 
  1004. which is correct, while on Windows it is enabled. 
  1005.  
  1006. 4112     The topPlayers instance variable is not being set after a title 
  1007. container is opened.
  1008.  
  1009. 4113     A window created during the startupAction of a title 
  1010. container has its title instance variable set to 
  1011. theScratchTitle instead of to the title container that created 
  1012. it.
  1013.  
  1014. Workaround:  When creating a window in the startup 
  1015. action, set the window's title keyword to the appropriate 
  1016. title container.
  1017.  
  1018. 4185     Do not set the height of a Window  object by using the 
  1019. boundary instance variable.
  1020.  
  1021. Workaround:  Use the height instance variable 
  1022. instead.
  1023.  
  1024. 4205    theOpenContainers displays duplicate containers if open 
  1025. was called on the same container twice.
  1026. ___________________________________________________________
  1027.  
  1028. Tools - Debug Tools
  1029.  
  1030. 4132     If you try to Step Into or Step Over calls to waitTime, the 
  1031. Debugger often takes control and does not give it back.  You 
  1032. have to quit ScriptX.
  1033.  
  1034. 4163     When specifying a breakpoint for a function in a module, you 
  1035. must specify the module name—modulename: fn or 
  1036. classname^methodname.
  1037.  
  1038. 4168     The browser menu is loaded twice.   Selecting browser menu 
  1039. item ob-1 in ScriptX tools menu will create two identical 
  1040. browser menus.
  1041.  
  1042. ___________________________________________________________
  1043.  
  1044. Tools - Widgets     
  1045.  
  1046. 4073     In PopupMenu widgets, a value of 0 or "nothing selected" 
  1047. cannot be specified.  If you mouseUp and the mouse is not over 
  1048. the menu area, no selection is indicated.  The last 
  1049. highlighted item, however, is the value returned, regardless 
  1050. of whether the mouseUp occurred inside or outside the menu.
  1051.  
  1052. 4135     If you create a scrollListBox with a height value too small to 
  1053. fit in the scroll bar, the scroll box fits only partially in 
  1054. between the up and down arrows.  Thus, when scrolling up and 
  1055. down, the scroll box overlaps the up or down arrow, 
  1056. depending on the position in the list box.
  1057.  
  1058. 4136     If text is longer than the size of the text area in popupMenu, 
  1059. the text overlaps with the down arrow icon.
  1060.  
  1061. 4138     When label text in radio button group is too long to fit in the 
  1062. text area, the text should be cut off one character before the 
  1063. right border line.  Instead, the text runs over the edge of the 
  1064. box.
  1065.  
  1066. 4139     If you create a multilinelistbox specifying a certain boundary 
  1067. value, and before appending the list box to the window, you 
  1068. resize it with a new boundary that is wider than it had been 
  1069. previously set, list box is drawn incorrectly.  The original list 
  1070. box is filled with a white backgournd, while the area added 
  1071. after the boundary was enlarged remains gray.
  1072.  
  1073. 4162     Assigning a new font for a widgets object does not set the font 
  1074. unless notifyChanged is used.
  1075.  
  1076. Workaround:  Set font for widgets and call 
  1077. notifyChanged.
  1078.  
  1079. 4190     The ScrollingTextEdit example in wdgtest.sx is not working.  
  1080. Scrolling is never enabled.  Any text you type in past the 
  1081. bottom of the visible boundary remains invisible for all time.
  1082.  
  1083. ___________________________________________________________
  1084.  
  1085. Transitions     
  1086.  
  1087. 3034     In Transitions, when transitioning a shape whose boundary is 
  1088. a clipped Stencil, the transition occurs over the clipped 
  1089. region as well.
  1090.  
  1091. 3267     When transitioning a TextPresenter within a 
  1092. OneOfNPresenter, the text displays itself for an instant and 
  1093. then goes away before transitioning.
  1094.  
  1095. Workaround:  If the targetSelector is not used, the 
  1096. flicker does not occur.
  1097.  
  1098. 3272     In Transitions, if the duration is set to zero, an expected error 
  1099. is not reported.
  1100.  
  1101. 3447     In transition players, when the duration is set to a large 
  1102. integer and the scale is set to a large integer, the transition 
  1103. flickers.
  1104.  
  1105. 3475     In the Loadable Transitions, the Dissolve class’s 
  1106. invisibleColor instance variable has no effect.  The white 
  1107. background matte is still visible.
  1108.  
  1109. 3497     In the Loadable Transitions, the Dissolve effect, which is a 
  1110. special transition class that freezes the clocks, disregards 
  1111. the duration setting.
  1112.  
  1113. 3749     Dissolve transition does not work correctly when the 
  1114. transition player is moved in x or y.
  1115.  
  1116. 3896     Windows only:  The instance variable autoSplice defined by 
  1117. the TransitionPlayer class does not function properly.
  1118.  
  1119. 3897     The instance variable cachedTarget.data defined by the 
  1120. TransitionPlayer class  does not return the same result across 
  1121. platforms.
  1122.  
  1123. 3901     The following transitions do not play at consistent rates: 
  1124. Checkerboard, Fan, Iris, rectIris, StripSlide, Wipe.
  1125.  
  1126. 3904     Windows only:  Getting an instance of a transition, with 
  1127. useOffscreen set to true, does not work when the target is a 
  1128. QuickTime movie.
  1129.  
  1130. 4065     Windows only: The iris transition does not work for calliope.  
  1131. The transition, when used, never presents an iris 'look.'  It just 
  1132. changes from one space completely to the other.
  1133.  
  1134. 4181     Windows only:  Invisible color on the bitmap surface, 
  1135. cachedTarget, is not rendered during a Wipe transition.
  1136.  
  1137. ___________________________________________________________
  1138.  
  1139. User Interface
  1140.  
  1141. 2961     When attempting to instantiate a class that inherits from 
  1142. both TextPresenter and Pushbutton, an error message appears. 
  1143.  
  1144. 3498     Macintosh only:  The origin of a notice window and a dialog 
  1145. window is not in the top left corner of the window.  It is offset 
  1146. slightly inward.
  1147.  
  1148. 3970     With the new Scrollbar, clicking on the track moves the 
  1149. thumb more than one page.  It is sensitive to holding down 
  1150. the mouse button.  In the old Scrollbar,  when the mouse 
  1151. button is held down there is a delay, which disappeared in 
  1152. the new scrollbar. Therefore, a click will produce from two to 
  1153. five times the scrolling specified in the pageAmount.
  1154.  
  1155. 4082     Usage note:  When you specify the size of a resizable window 
  1156. on the Windows platform, the client area is less than you 
  1157. want because of the resize bars.  The boundary of the window 
  1158. should be the client area, the physical window should be 
  1159. bigger.
  1160.  
  1161. 4156     Enabling an ActuatorController instance twice throws an 
  1162. exception.
  1163.  
  1164. Workaround:  Check the value of enabled before setting 
  1165. a new value.
  1166.  
  1167. 4188     When watching the mouse crossing events, if the presenter's 
  1168. coordinates of x or y = 0, and it is against the border or 
  1169. titlebar of a window, the MouseCrossingEvent @enter event 
  1170. occurs but not the MouseCrossingEvent @leave event.
  1171.  
  1172. ___________________________________________________________
  1173.  
  1174. Visual Memory     
  1175.  
  1176. 3922     The Visual Memory window leaves trails when it is moved 
  1177. during an animation.
  1178.  
  1179.